import { getFileNameNotType, getTenantID, getUserID, onMouseOutBtn, removeDateHmsStr, renderTableText, splitFileUrl } from '@/utils';
import { Button, Tooltip } from 'antd';
import { PlusCircleOutlined, EditOutlined, EyeOutlined } from '@ant-design/icons';
import pageStyles from '@/common/pageLayout.less';
import { ILoadMapTypeAll } from '@/common';

interface IGetProcessNodeTableColumns {
  curRes: Record<string, any>;
  detailInfo: Record<string, any>;
  openProceTableModal: (resObj: Record<string, any>) => void;
  onOpenReadOfdWord: (fieldUrl: string) => void;
}

/** 履约关键节点表格 */
const getProcessNodeTableColumns = ({ curRes, detailInfo, openProceTableModal, onOpenReadOfdWord }: IGetProcessNodeTableColumns) => {
  let tableConfig: Record<string, any>[];
  if (detailInfo?.payStyle == `${getTenantID()}${ILoadMapTypeAll.PAYMENT_STYLE}1002`) {
    tableConfig = [
      {
        title: '序号',
        dataIndex: 'index',
        key: 'index',
        visible: true,
        width: 70,
        fixed: 'left',
        render: (text, record, index) => {
          return Number(index) + 1;
        },
      },
      {
        title: '履约事项',
        dataIndex: 'payExplain',
        key: 'payExplain',
        visible: true,
        width: 250,
        render: (text: string) => renderTableText(text, true),
      },
    ];
  } else {
    tableConfig = [
      {
        title: '预期时间',
        dataIndex: 'payTime',
        key: 'payTime',
        visible: true,
        width: 150,
        fixed: 'left',
        render: (text: string) => {
          return (
            <Tooltip title={text ? text : ''}>
              <span className={pageStyles['over-flow-hidden']}>{text ? removeDateHmsStr(text) : '--'}</span>
            </Tooltip>
          );
        },
      },
      {
        title: '履约事项',
        dataIndex: 'payExplain',
        key: 'payExplain',
        visible: true,
        width: 250,
        render: (text: string) => renderTableText(text, true),
      },
      {
        title: '支付方式',
        dataIndex: 'payType',
        key: 'payType',
        visible: true,
        width: 150,
        render: (text: any) => {
          return (
            <span>
              {text == '0'
                ? '一次性支付'
                : text == '1'
                ? '预付款'
                : text == '2'
                ? '进度款'
                : text == '3'
                ? '尾款'
                : text == '4'
                ? '其他方式'
                : text == '5'
                ? '无款项'
                : '--'}
            </span>
          );
        },
      },
      {
        title: '支付比例（%）',
        dataIndex: 'payNum',
        key: 'payNum',
        visible: true,
        width: 160,
        render: (text: string | any) => {
          return <span>{text ? text : '--'}</span>;
        },
      },
      {
        title: '支付金额（元）',
        dataIndex: 'paySum',
        key: 'paySum',
        visible: true,
        width: 160,
        render: (text: string | any) => {
          return <span>{text ? text?.toFixed(2) : '0.00'}</span>;
        },
      },
      // {
      //   title: '完成情况说明',
      //   dataIndex: 'finishExplain',
      //   key: 'finishExplain',
      //   visible: true,
      //   width: 250,
      //   render: (text: string) => renderTableText(text, true),
      // },
      // {
      //   title: '佐证材料',
      //   dataIndex: 'attachURL',
      //   key: 'attachURL',
      //   visible: true,
      //   width: 250,
      //   render: (text: string) => {
      //     const fieldList: string[] | any = text ? splitFileUrl(text) : '';
      //     return (
      //       <div style={{ width: '100%' }}>
      //         {fieldList && fieldList?.length > 0 ? (
      //           <>
      //             {fieldList?.map((item: any, index: number) => {
      //               return (
      //                 <div
      //                   style={{
      //                     width: '100%',
      //                     display: 'flex',
      //                     justifyContent: 'space-between',
      //                     alignItems: 'center',
      //                   }}
      //                   key={`${item?.attachName}-${index}`}
      //                 >
      //                   <Tooltip title={item.attachName}>
      //                     <a
      //                     // onClick={() => {
      //                     //   message.success('下载中，请稍后...');
      //                     //   downloadTemplate("/contractController/downloadFile", item?.attachName, item?.attachUrl, () => { });
      //                     // }}
      //                     >
      //                       {getFileNameNotType(item.attachName, 15)}
      //                       {/* {fieldList?.length - 1 != index && (
      //                         <>，</>
      //                       )} */}
      //                     </a>
      //                   </Tooltip>
      //                   <a
      //                     onClick={() => {
      //                       onOpenReadOfdWord(item?.attachUrl);
      //                     }}
      //                   >
      //                     <EyeOutlined />
      //                   </a>
      //                 </div>
      //               );
      //             })}
      //           </>
      //         ) : (
      //           <span>--</span>
      //         )}
      //       </div>
      //     );
      //   },
      // },
      // {
      //   title: '完成时间',
      //   dataIndex: 'lastPayTime',
      //   key: 'lastPayTime',
      //   visible: true,
      //   width: 180,
      //   render: (text: string) => {
      //     return (
      //       <Tooltip title={text ? text : ''}>
      //         <span className={pageStyles['over-flow-hidden']}>{text ? removeDateHmsStr(text) : '--'}</span>
      //       </Tooltip>
      //     );
      //   },
      // },
    ];
  }

  //履约记录操作列隐藏
  // if (
  //   detailInfo?.ownerID == getUserID() &&
  //   detailInfo?.state &&
  //   detailInfo?.state != `${getTenantID()}${ILoadMapTypeAll.CONTRACT_STATE}1005` &&
  //   detailInfo?.state != `${getTenantID()}${ILoadMapTypeAll.CONTRACT_STATE}1006` &&
  //   detailInfo?.state != `${getTenantID()}${ILoadMapTypeAll.CONTRACT_STATE}1007`
  // ) {
  //   tableConfig?.push(
  //     {
  //     title: (
  //       <>
  //         {detailInfo?.ownerID == getUserID() && curRes[`/contractController/addProcess`] && (
  //           <div style={{ width: '100%', textAlign: 'center' }}>
  //             <Button
  //               type="link"
  //               size="small"
  //               icon={<PlusCircleOutlined />}
  //               className="manageBtntTxtStyle"
  //               onClick={() => {
  //                 openProceTableModal({});
  //               }}
  //               onMouseOut={onMouseOutBtn}
  //             >
  //               添加
  //             </Button>
  //           </div>
  //         )}
  //       </>
  //     ),
  //     dataIndex: 'otherBtn',
  //     key: 'otherBtn',
  //     width: 100,
  //     fixed: 'right',
  //     render: (_text: any, record: any) => {
  //       if (
  //         detailInfo?.ownerID == getUserID() &&
  //         record.payFlag == 0 &&
  //         (record.payState == 0 || record.payState == 1 || record.payState == 2) &&
  //         curRes[`/contractController/finishProcess`]
  //       ) {
  //         return (
  //           <div style={{ width: '100%', textAlign: 'center' }}>
  //             <Button
  //               type="link"
  //               size="small"
  //               icon={<EditOutlined />}
  //               className="manageBtntTxtStyle"
  //               onMouseOut={onMouseOutBtn}
  //               onClick={() => {
  //                 openProceTableModal(record);
  //               }}
  //             >
  //               编辑
  //             </Button>
  //           </div>
  //         );
  //       } else {
  //         return <div style={{ cursor: 'no-drop', width: '100%', textAlign: 'center' }}>--</div>;
  //       }
  //     },
  //   });
  // }

  return tableConfig;
};

export { getProcessNodeTableColumns };
